﻿using System;
using System.Collections.Generic;

namespace Program20
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.{患者：“大夫，我咳嗽得很重。”     大夫：“你多大年记？”     患者：“七十五岁。”     
            //大夫：“二十岁咳嗽吗”患者：“不咳嗽。”     大夫：“四十岁时咳嗽吗？”     
            //患者：“也不咳嗽。”     大夫：“那现在不咳嗽，还要等到什么时咳嗽？}
            //找出第1次出现咳嗽的位置是第几个字符

            //string str = "患者：“大夫，我咳嗽得很重。”     大夫：“你多大年记？”     患者：“七十五岁。”     大夫：“二十岁咳嗽吗”患者：“不咳嗽。”     大夫：“四十岁时咳嗽吗？”     患者：“也不咳嗽。”     大夫：“那现在不咳嗽，还要等到什么时咳嗽？”";
            //int index = str.IndexOf("咳嗽");
            //int j = 1;
            //Console.WriteLine("第1次出现咳嗽的位置是{0}", index);
            //while (index != -1)
            //{
            //    j++;
            //    index = str.IndexOf("咳嗽", index + 1);
            //    if (index == -1)
            //    {
            //        break;
            //    }
            //    Console.WriteLine("第{0}次找到咳嗽的位置是{1}", j, index);
            //}
            //Console.ReadKey();


            //2.将字符串"  hello      world,你  好 世界   !    "
            //两端空格去掉，并且将其中的所有其他空格都替换成一个空格，
            //输出结果为："hello world,你 好 世界 !"。

            //string s = "  hello      world,你  好 世界   !    ";
            //s = s.Trim();//删除字符串首尾的空格
            //string[] sNew = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            //string strNew = string.Join(" ", sNew);
            //Console.Write(strNew);
            //Console.ReadKey();

            //3.存储用户输入的姓名，回车存储；只要用户不输入‘quit’就可以一直输入。
            //输入quit后打印出所有刚才输入的姓名，统计个数

            Console.WriteLine();
            List<string> list = new List<string>();
            while (true)
            {
                Console.WriteLine("请输入学员姓名，输入quit退出");
                string name = Console.ReadLine();
                if (name != "quit")
                {
                    list.Add(name);
                }
                else
                {
                    break;
                }
            }
            //int ii = 0;
            Console.WriteLine("您刚才一共录入了{0}个人的成绩，分别是:", list.Count);
            Console.WriteLine();
            foreach (string item in list)
            {
                //if (item[0] == '王')
                //{
                //    ii++;
                //}
                Console.WriteLine(item);
            }
            //Console.WriteLine("姓王的同学的个数一共有{0}个", ii);
            Console.ReadKey();


            //4.请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转。然后输出反转后的数组。不能用数组的Reverse()方法
           
            string[] str2 = { "中国", "美国", "巴西", "澳大利亚", "加拿大" };
            for (var i = 0; i < str2.Length / 2; i++)
            {
                string tmp = str2[i];
                str2[i] = str2[str2.Length - i - 1];
                str2[str2.Length - i - 1] = tmp;
            }
            for (var i = 0; i < str2.Length; i++)
            {
                Console.Write("{0} ", str2[i]);
            }

            //5. 用方法来实现：计算两个数的最大值。 扩展：计算任意多个数间的最大值
            Console.WriteLine();
            //AnyNumMax(-9.5,0.5,-90);
            Console.ReadKey();
            Console.WriteLine("最大值："+GetMax(1, 4, 2, 43, 199, 65));
            //List<string> list2 = new List<string>();
            //double num = Convert.ToDouble(Console.ReadLine());
            //list2.Add(num.ToString());


            //double[] arr = Console.ReadLine();
            //Console.WriteLine("请输入两个数");
            //double num1;
            //double num2;
            //num1 = Convert.ToDouble(Console.ReadLine());
            //num2 = Convert.ToDouble(Console.ReadLine());
            //double max = NumMax(num1, num2);
            //Console.WriteLine("最大值是："+max );

            //6.选做题：输入要打开的文件所在路径，输入要打开的文件的名字，按文件类型打开或读取文件内容
            //文件处理，进程，工厂模式



        }
        public static  double  NumMax(double a,double b)
        {
            if(a>b)
            {
                return a;
            }
            else
            {
                return b;
            }
        }
        public static void AnyNumMax(params double[]arr)
        {
            double max = 0;
            double min = 0;
            for (var i = 0; i < arr.Length; i++)
            {
                if (arr[i] > max)
                    max = arr[i];
                else
                    min = arr[i];
            }
            Console.Write("最大值为：" + max+" ");
            Console.Write("最小值为：" + min+" ");
        }
        public static int GetMax(params int[] nums)
        {
            int max = nums[0];
            for (int i = 0; i < nums.Length; i++)
            {
                if (nums[i] > max)
                    max = nums[i];
            }

            return max;
        }

    }
}
